package homework;

import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;

/**
 * @description:
 * @author: jhy
 * @time: 2021/4/18 14:03
 */

/*
题目要求：
(1).使用字符流的方式，编写一个客户端和服务端的程序
(2)客户端发送"name"，服务端接收到后，回复"我是nova"
(3)客户端发送"hobby",服务端接收到后，回复"编写java程序"
(4)不是这两个问题，回复"你说啥那"
 */
public class Homework01Client {

    public static void main(String[] args) throws IOException {

        //1.初始化Socket(ip,端口)
        //连接本机的9999端口，如果连接成功，返回socket对象
        Socket socket = new Socket(InetAddress.getLocalHost(),9999);

        //2.连接上服务端后，通过socket.getOutputStream()得到和socket关联的输出流对象
        OutputStream outputStream = socket.getOutputStream();

        //3.通过输出流，写入数据到数据通道，---->通过字符流
        BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream));

        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入你的问题");
        String question = scanner.next();
        bufferedWriter.write(question);
        bufferedWriter.newLine();//插入一个换行符，表示写入内容结束，注意：要求对方使用readLine()
        bufferedWriter.flush();//如果使用字符流，需要手动刷新，否则数据不会写入

        //4.通过socket关联的输入流，读取数据(字符)，并显示
        InputStream inputStream = socket.getInputStream();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
        String s = bufferedReader.readLine();
        System.out.println(s);

        //5.关闭流对象和socket对象
        outputStream.close();
        socket.close();
        System.out.println("客户端退出...");

    }
}
